package vista;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import modelo.jugador.Jugador;

@SuppressWarnings("serial")
public class VistaSalida extends JFrame{
	
	private Jugador elJugador;
	private JButton salir = new JButton("EXIT");
	private JButton restart = new JButton("RESTART");
	private fondoSalida panelFondo = new fondoSalida();
	
	public VistaSalida(Jugador unJug, String mensaje){
		elJugador = unJug;
		
		JLabel nombre = new JLabel(elJugador.getNombre()+" -");
		nombre.setForeground(Color.YELLOW);
		nombre.setFont(new Font(Font.SANS_SERIF,Font.BOLD,17));
		JLabel puntaje = new JLabel(Integer.toString(elJugador.getPuntaje()));
		puntaje.setForeground(Color.GREEN);
		puntaje.setFont(new Font(Font.SANS_SERIF,Font.BOLD,17));
		
		//Creo Panel para Jugador y puntaje
		JPanel partida = new JPanel();
		partida.setOpaque(false);
		partida.setLayout(new FlowLayout());
		partida.add(nombre);
		partida.add(puntaje);
		
		//Creo Panel Con botones
		JPanel opciones = new JPanel();
		opciones.setOpaque(false);
		opciones.setLayout(new FlowLayout());
		opciones.add(salir);
		opciones.add(restart);
		
		//Pongo mensaje en la salida
		JLabel msg = new JLabel("    "+mensaje);
		msg.setFont(new Font(Font.SANS_SERIF,Font.BOLD,20));
		msg.setForeground(Color.ORANGE);
		
		//Agrego los Paneles al principal
		panelFondo.add(msg, BorderLayout.NORTH);
		panelFondo.add(partida, BorderLayout.CENTER);
		panelFondo.add(opciones, BorderLayout.SOUTH);
		
		add(panelFondo);
		setTitle("GPS-Challenge(salir)");
		setSize(300,125);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		this.setLocationRelativeTo(null);
	}
	
	private class fondoSalida extends JPanel{
		
		private ImageIcon gameOver = new ImageIcon(getClass().getResource("/imagenes/improvistos/finDelJuego.gif"));
		private Image finJuego = gameOver.getImage();
		
		fondoSalida(){
			setLayout(new BorderLayout());
		}
		
		@Override
		protected void paintComponent(Graphics g){
			super.paintComponent(g);
			g.drawImage(finJuego,0,0,getWidth(), getHeight(), this);
			
		}
		
	}
	
	public void addAccionSalir(ActionListener salida){
		
		salir.addActionListener(salida);
		
	}
	
	public void addAccionRestart(ActionListener reempezar){
		
		restart.addActionListener(reempezar);
		
	}
}
